<html xmlns="http://www.w3c.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"
	xmlns:f="http://java.sun.com/jsf/core">
	<h:head>
		<title> Distribuidora Frutos del Campo </title>
		<link rel="stylesheet" type="text/css" media="screen" href="../css/hojaDeEstilos.css" />
		<meta charset="utf-8" />
	</h:head>
	<h:body>
		<div id = 'contenido'>   
			<header>              
				<hgroup>          
					<a href="../home.xhtml"> <img src="../imagenes/tituloPagina.jpg" /></a>  
					<h2>Gestión de Listas de Precios</h2>
				</hgroup>
				<hr />
				<br />
								
				<hgroup>
					<h:form>
						<!-- Menu -->
						<p:menubar autoDisplay="false">
	
							<p:menuitem value="Registrar"
								action="#{listaDePrecioBean.visibilizarRegistrar}"
								update=":formularioBusqueda :formularioRegistro :formularioEdicion" />
	
							<p:menuitem value="Buscar"
								action="#{listaDePrecioBean.visibilizarBuscar}"
								update=":formularioBusqueda :formularioRegistro :formularioEdicion" />
						</p:menubar>
					</h:form>
				</hgroup>
				<hr />
			</header>
			
			<section>
			<div id='textoPrincipal'>

				<!-- Panel de Busqueda -->
				<div class="row-fluid" align="center">
					<h:form id="formularioBusqueda">

						<div class="span12" align="left">
							<p:panel id="buscar" header="Buscar Listas de Precios" visible="#{listaDePrecioBean.panelBuscarVisibilidad}">

								<h:panelGrid id="panelBusqueda" columns="4" cellpadding="5">

									<h:outputLabel for="codigo" value="Codigo: " />
									<p:inputText value="#{listaDePrecioBean.codigoBuscar}" id="codigo"
										label="Codigo " />

									<h:outputLabel for="nombre" value="Nombre: " />
									<p:inputText value="#{listaDePrecioBean.nombreBuscar}" id="nombre"
										label="Nombre " />

								</h:panelGrid>

								<p:commandButton id="buscarButton" value="Buscar"
									action="#{listaDePrecioBean.buscarListaDePrecio}"
									update="panelBusqueda listasTabla" />

							</p:panel>
						</div>

						<div class="span12" align="left">
							<p:panel id="mostrar" header="Listas de Precios Encontradas" visible="#{listaDePrecioBean.panelBuscarVisibilidad}">

								<p:outputPanel id="listasTabla">
									<p:dataTable id="dataTable" var="listaDePrecio"
										value="#{listaDePrecioBean.listas}"
										widgetVar="listasTable" rowKey="#{listaDePrecio.codigo}"
										selection="#{listaDePrecioBean.listaDePrecioSeleccionado}"
										selectionMode="single">

										<p:column id="codigoColumn" headerText="Codigo"
											sortBy="codigo">
											<h:outputText value="#{listaDePrecio.codigo}" />
										</p:column>

										<p:column id="nombreColumn" headerText="Nombre"
											sortBy="nombre">
											<h:outputText value="#{listaDePrecio.nombre}" />
										</p:column>

										<p:column id="detallesColumn" style="width:10%"
											headerText="Detalles" footerText=" ">
											<p:commandButton id="selectButton"
												style="margin:1px; padding:1px; width: 25px; height: 25px; left:25%"
												update=":formularioBusqueda :display"
												oncomplete="PF('detalles').show()"
												icon="ui-icon-arrow-4-diag">
												<f:setPropertyActionListener value="#{listaDePrecio}"
													target="#{listaDePrecioBean.listaDePrecioSeleccionadoDetalles}" />
											</p:commandButton>
										</p:column>
									</p:dataTable>
								</p:outputPanel>

								<p:commandButton id="editarButton" value="Editar"
									update=":formularioEdicion :formularioRegistro :formularioBusqueda"
									action="#{listaDePrecioBean.editarListaDePrecio}" />

								<p:commandButton id="eliminarButton" value="Eliminar"
									action="#{listaDePrecioBean.eliminarListaDePrecio}" update="listasTabla :formularioEdicion">
									<p:confirm header="Confirmacion de eliminacion"
										message="Esta seguro que quiere eliminar esta lista de precios?"
										icon="ui-icon-alert" />
								</p:commandButton>
								
								<div align="right">
								<h:commandButton id="botonimprimir" update=":formularioEdicion"					
								value="Imprimir" 
								action="#{listaDePrecioBean.exportarPDF}">
								</h:commandButton>
								</div>
								
								<p:confirmDialog global="true" showEffect="fade" 
									hideEffect="explode">
									<p:commandButton value="Si" type="button"
										styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
									<p:commandButton value="No" type="button"
										styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
								</p:confirmDialog>
							</p:panel>
						</div>
					</h:form>

					<!-- Dialogo para cuando se apreta el Boton de Detalles de listaDePrecio -->
					<p:dialog header="Detalles del Listas de Precios" widgetVar="detalles" position="top"
						resizable="false" id="listaDePrecioDetalles" showEffect="fade"
						hideEffect="explode" modal="true">

						<h:panelGrid id="display" columns="2" cellpadding="4"
							style="margin:0 auto;">

							<f:facet name="header">
								<p>Datos:</p>
							</f:facet>

							<h:outputText value="Codigo: " />
							<h:outputText
								value="#{listaDePrecioBean.listaDePrecioSeleccionadoDetalles.codigo}"
								style="font-weight:bold" />

							<h:outputText value="Nombre: " />
							<h:outputText
								value="#{listaDePrecioBean.listaDePrecioSeleccionadoDetalles.nombre}"
								style="font-weight:bold" />

							<h:outputText value="Inicio de vigencia:" />
							<h:outputText
								value="#{listaDePrecioBean.listaDePrecioSeleccionadoDetalles.incioVigencia}"
								id="inicioVigencia" style="font-weight:bold">
								<f:convertDateTime pattern="d/M/yyyy" />
							</h:outputText>

							<h:outputText value="Fin de vigencia:" />
							<h:outputText
								value="#{listaDePrecioBean.listaDePrecioSeleccionadoDetalles.finVigencia}"
								id="finVigencia" style="font-weight:bold">
								<f:convertDateTime pattern="d/M/yyyy" />
							</h:outputText>
						</h:panelGrid>

					</p:dialog>
				</div>


				<!-- Panel de Edicion -->
				<div class="row-fluid" align="center">
					<h:form id="formularioEdicion">

						<div class="span12" align="left">
							<p:panel id="editar" header="Edicion del Listas de Precios" visible="#{listaDePrecioBean.panelEditarVisibilidad}">

								<h:panelGrid columns="4" cellpadding="5">

									<h:outputLabel for="nombre" value="Nombre: " />
									<p:inputText value="#{listaDePrecioBean.listaDePrecioSeleccionado.nombre}"
										id="nombre" required="true" label="Nombre " />

									<h:outputLabel for="codigo" value="Codigo: " />
									<p:inputText value="#{listaDePrecioBean.listaDePrecioSeleccionado.codigo}"
										id="codigo" required="true" label="Codigo " />

									<h:outputLabel for="inicioVigencia"
										value="Inicio de vigencia: " />
									<p:calendar
										value="#{listaDePrecioBean.listaDePrecioSeleccionado.incioVigencia}"
										id="inicioVigencia" />

									<h:outputLabel for="finVigencia" value="Fin de vigencia: " />
									<p:calendar
										value="#{listaDePrecioBean.listaDePrecioSeleccionado.finVigencia}"
										id="finVigencia" />

								</h:panelGrid>
								
								<p:panel id="agregarProductoEditar"
									header="Editar lista de elementos">

										<h:panelGrid columns="4" id="grid">

											<h:outputLabel for="comboEditar" value="Producto: " />
											<p:selectOneMenu id="comboEditar"
												value="#{listaDePrecioBean.productoSeleccionadoEditar}"
												converter="productoConverter" effect="fade"
												label="Producto ">
												<f:selectItem itemLabel="Seleccionar uno" itemValue="" />
												<f:selectItems value="#{listaDePrecioBean.productos}"
													var="producto" itemValue="#{producto}"
													itemLabel="#{producto.nombre}" />
											</p:selectOneMenu>

											<h:outputLabel value="Precio: " for="precioEditar" />
											<p:inputText id="precioEditar"
												value="#{listaDePrecioBean.precioElementoEditar}"
												converterMessage="Cannot convert to double.">
												<f:validateDoubleRange minimum="0.0" />
											</p:inputText>

											<p:commandButton id="botonAgregarEditar" value="Agregar"
												update="agregarProductoEditar elementosEditar elementosTableEditar"
												action="#{listaDePrecioBean.agregarElementoEditar}">
											</p:commandButton>

										</h:panelGrid>

										<p:outputPanel id="elementosEditar">
										<p:dataTable id="elementosTableEditar"
											value="#{listaDePrecioBean.elementosEditar}"
											var="elemento">

											<p:column>
												<f:facet name="header">
													<h:outputText value="Producto" />
												</f:facet>
												<h:outputText value="#{elemento.producto.nombre}" />
											</p:column>

											<p:column>
												<f:facet name="header">
													<h:outputText value="Precio" />
												</f:facet>
												<h:outputText value="#{elemento.precioVenta}" />
											</p:column>

											<p:column style="width:1%">
												<f:facet name="header">
													<h:outputText value="Operación" />
												</f:facet>
												<p:commandLink value="Borrar" update="elementosTableEditar"
													process="elementosTableEditar">
													<p:collector value="#{elemento}"
														removeFrom="#{listaDePrecioBean.elementosEditar}" />
												</p:commandLink>
											</p:column>

										</p:dataTable>
									</p:outputPanel>
								</p:panel>

								<p:commandButton id="editarButton" value="Guardar"
									update=":formularioBusqueda :formularioEdicion :formularioRegistro"
									action="#{listaDePrecioBean.actualizarListaDePrecio}"
									disabled="#{empty listaDePrecioBean.listaDePrecioSeleccionado}" />

								<p:commandButton id="volverButton" value="Volver"
									update=":formularioBusqueda :formularioEdicion :formularioRegistro"
									action="#{listaDePrecioBean.volverBusqueda}" />
							</p:panel>
						</div>
					</h:form>

				</div>
				
				<!-- Panel de Registro -->
				<div class="row-fluid" align="center">
					<h:form id="formularioRegistro">
						<div class="span12" align="left">
						
							<p:panel id="registrar" header="Registro de Listas de Precios" visible="#{listaDePrecioBean.panelRegistrarVisibilidad}">

								<h:panelGrid id="panelRegistro" columns="4" cellpadding="5">

									<h:outputLabel for="nombre" value="Nombre: " />
									<p:inputText value="#{listaDePrecioBean.nombreRegistrar}"
										id="nombre" required="true" label="Nombre " />

									<h:outputLabel for="codigo" value="Codigo: " />
									<p:inputText value="#{listaDePrecioBean.codigoRegistrar}"
										id="codigo" required="true" label="Codigo " />

									<h:outputLabel for="inicioVigencia"
										value="Inicio de vigencia: " />
									<p:calendar
										value="#{listaDePrecioBean.inicioVigenciaRegistrar}"
										id="inicioVigencia" required="true" />

									<h:outputLabel for="finVigencia" value="Fin de vigencia: " />
									<p:calendar value="#{listaDePrecioBean.finVigenciaRegistrar}"
										id="finVigencia" required="true" />

								</h:panelGrid>

									
								<p:panel id="agregarProducto"
									header="Generar lista de elementos">

										<h:panelGrid columns="4" id="grid">

											<h:outputLabel for="combo" value="Producto: " />
											<p:selectOneMenu id="combo"
												value="#{listaDePrecioBean.productoSeleccionadoRegistrar}"
												converter="productoConverter" effect="fade"
												label="Producto ">
												<f:selectItem itemLabel="Seleccionar uno" itemValue="" />
												<f:selectItems value="#{listaDePrecioBean.productos}"
													var="producto" itemValue="#{producto}"
													itemLabel="#{producto.nombre}" />
											</p:selectOneMenu>

											<h:outputLabel value="Precio: " for="precio" />
											<p:inputText id="precio"
												value="#{listaDePrecioBean.precioElementoRegistrar}"
												converterMessage="Cannot convert to double.">
												<f:validateDoubleRange minimum="0.0" />
											</p:inputText>

											<p:commandButton id="botonAgregar" value="Agregar"
												update="agregarProducto elementosRegistrar elementosTable"
												action="#{listaDePrecioBean.agregarElementoRegistrar}">
											</p:commandButton>

										</h:panelGrid>

										<p:outputPanel id="elementosRegistrar">
										<p:dataTable id="elementosTable"
											value="#{listaDePrecioBean.elementosRegistrar}"
											var="elemento">

											<p:column>
												<f:facet name="header">
													<h:outputText value="Producto" />
												</f:facet>
												<h:outputText value="#{elemento.producto.nombre}" />
											</p:column>

											<p:column>
												<f:facet name="header">
													<h:outputText value="Precio" />
												</f:facet>
												<h:outputText value="#{elemento.precioVenta}" />
											</p:column>

											<p:column style="width:1%">
												<f:facet name="header">
													<h:outputText value="Operación" />
												</f:facet>
												<p:commandLink value="Borrar" update="elementosTable"
													process="elementosTable">
													<p:collector value="#{elemento}"
														removeFrom="#{listaDePrecioBean.elementosRegistrar}" />
												</p:commandLink>
											</p:column>

										</p:dataTable>
									</p:outputPanel>
								</p:panel>


								<p:commandButton id="regiButton" value="Registrar"
									action="#{listaDePrecioBean.registrarListaDePrecio}"
									update="panelRegistro elementosTable" />
							</p:panel>
						</div>
					</h:form>

				</div>
			</div>
		</section> 
		</div>
	
	</h:body>
</html>